The present invention relates to a semiconductor LSI having the function of decrypting an encrypted program and executing the decrypted program which is mounted on information equipment or the like. More particularly, it relates to a processing system and method for encrypting a program and delivering the encrypted program from a device associated with a program owner to a device associated with a program user.
With the widespread use of information equipment capable of rewriting a program or executing a user program, a system for preventing illegal copying of software has been devised in recent years. In a method in which a program is encrypted and delivered, provision has been made to prevent the copying of a program for decrypting the encrypted program (hereinafter referred to as the “decryption program”. For example, a decryption program is disposed in the internal memory of an LSI from which it cannot be read from the outside and the decrypted program is further protected from being read from the outside (see, e.g., Japanese Laid-Open Patent Publication No. HEI 8-30558).
FIG. 18 is a block diagram showing a conventional semiconductor integrated circuit device for executing an encrypted program.
The semiconductor integrated circuit device 1 shown in FIG. 18 has: a CPU 3; internal mimories 4 and 5 for inputting/outputting data via an internal bus 7; a bus port 6 for controlling the inputting/outputting of data to and from the outside via an external bus 2; an I/O port 9 connected to the CPU 3 via an I/O bus 8; a memory port 10 for controlling the internal RAM 5; and control registers 11 for controlling the memory port 10.
A decryption program for decrypting the encrypted program is stored in the internal ROM 4. The encrypted program is read in the internal RAM 5 and decrypted in accordance with the decryption program. The decrypted program is written in the internal RAM 5. The decrypted program written in the internal RAM 5 is protected from being read from the memory port 10 to the outside under the control of the control registers 11.
However, since the decryption program is kept in the LSI as described above, an internal nonvolatile memory should be provided in the LSI, which increases cost required for the LSI.
In addition, if a malicious program is encrypted, read in the LSI, and then executed, the decryption program may be transferred by the program to the outside and hacked. The use of the decryption program that has been hacked makes it possible to hack the encrypted program. Once the encrypted program is hacked, the LSI cannot be used any more since the decryption program cannot be changed.
A problem has also been encountered that an encryption program and an encryption strength cannot be selected by the encrypted program transferor.